home *** CD-ROM | disk | FTP | other *** search
-
-
-
- DES(3) C LIBRARY FUNCTIONS DES(3)
-
-
-
- NAME
- desinit, setkey, endes, dedes, desdone - DES encryption
-
- SYNOPSIS
- desinit(mode) int mode;
-
- setkey(key) char *key;
-
- endes(block) char *block;
-
- dedes(block) char *block;
-
- desdone();
-
- DESCRIPTION
- These routines implement both standard and modified forms of
- the NBS Data Encryption Standard (DES). The user must first
- call desinit with one of three operating modes:
-
- 0 - Standard, vanilla DES.
-
- 1 - DES with the initial and final permutations removed. As
- these permutations do not strengthen the algorithm, they are
- widely regarded as having no purpose other than to slow down
- software implementations. Removing them speeds it up but of
- course the algorithm is no longer standard and it will not
- be compatible with hardware DES chips.
-
- 2 - DES with the initial and final permutations removed, and
- with independent 48-bit subkeys for each of the 16 rounds.
- Needless to say this is even less standard than mode 1, but
- if properly used (randomize ALL key bytes -- no padding!) it
- should strengthen the algorithm.
-
- After calling desinit the user next calls setkey. In modes 0
- and 1, 8 key bytes are expected, with the low order bit of
- each key byte ignored (parity is not checked). This gives a
- 56-bit key. In mode 2, 128 key bytes are expected; the high
- order 2 bits of each byte are ignored, giving a 768 bit key.
- In this mode, the first 8 bytes will be used in the first
- round, the second 8 bytes in the second round, and so on.
-
- Once the key is set, the user may perform in-place encryp-
- tion and decryption of 8-byte blocks of data with calls to
- endes and dedes.
-
- To free up memory dynamically allocated by desinit the user
- may call desdone. If further encryption or decryption is to
- be done, desinit and setkey must be called again.
-
- AUTHOR
- Phil Karn, KA9Q, building heavily on the earlier public
- domain code by Jim Gillogly.
-
-
- Last change: 24 March 1987 1
-
-
-
-